package cn.lizemin.decorator.version0;


/**
 * @author lzm
 * @version 1.0
 * @description: TODO
 * @date 2022/4/14 11:29
 */
public class Client {
    /**
     * 程序的入口
     */
    public static void main(String[] args) {
        NaiXue naiXue = new NaiXue();
        System.out.println(naiXue.getDescription());

        System.out.println("--------------------");
        /**
         * 缺陷1
         * 增强奈雪后，后面无法继续对其功能增强了，因为类型已经从奈雪变成了糖，
         * 也就是说，这种方式只能加一勺糖，加多勺就无能为力了
         */
//        Sugar sugar = new Sugar(naiXue);
//        System.out.println(sugar.getDescription());

        /**
         * 为了修复缺陷1，让增强类继承奈雪类，这样可以做类型转换，
         * 后面也可以多次增强奈雪的功能，就是可以多加几勺糖
         *
         * 仍然存在的缺陷：
         *  就是糖似乎只能加在奈雪上，我还想加在咖啡上，因此需要扩展，使糖可以加在任何饮料上，而不只奈雪
         */
        naiXue = new Sugar(naiXue);
        //加第二勺糖
        naiXue = new Sugar(naiXue);
        System.out.println(naiXue.getDescription());


    }
}
